package com.yxx.validator;

import com.yxx.annotation.EnumValid;
import org.springframework.beans.factory.annotation.Value;

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import java.util.HashSet;
import java.util.Set;

/**
 * 自定义枚举校验器
 * @author yuxiangxun
 * @date 2025/2/9
 * @apiNote
 */
public class EnumValidator implements ConstraintValidator<EnumValid,Integer> {

    private final Set<Integer> set = new HashSet<>();

    /**
     * 重写初始化
     * @param constraintAnnotation  评论类型注解
     */
    @Override
    public void initialize(EnumValid constraintAnnotation) {
        for(int value : constraintAnnotation.values()){
            set.add(value);
        }
    }

    /**
     * 重写校验逻辑
     * @param integer 校验的值
     * @param constraintValidatorContext 上下文
     * @return 是否校验成功
     */
    @Override
    public boolean isValid(Integer integer, ConstraintValidatorContext constraintValidatorContext) {
        return set.contains(integer);
    }
}
